home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Auge 4000 / Auge 4000 #06 (1987-05-23)(Amiga User Gruppe Einzugsgebiet 4000).zip / Auge 4000 #06 (1987-05-23)(Amiga User Gruppe Einzugsgebiet 4000).adf / Digitizer-Nachschlag / PlayIFF_Source < prev    next >
Text File  |  1987-03-08  |  2KB  |  100 lines

  1.  
  2. DMACONW  EQU   $DFF096
  3. ADKCONW  EQU   $DFF09E
  4. AUD0LCH  EQU   $DFF0A0
  5. AUD1LCH  EQU   $DFF0B0
  6. AUD0LEN  EQU   $DFF0A4
  7. AUD1LEN  EQU   $DFF0B4
  8. AUD0PER  EQU   $DFF0A6
  9. AUD1PER  EQU   $DFF0B6
  10. AUD0VOL  EQU   $DFF0A8
  11. AUD1VOL  EQU   $DFF0B8
  12.  
  13. _AbsExecBase      equ   4
  14. _LVOOpenLibrary   equ   -552
  15. _LVOInput         equ   -54
  16. _LVOOpen          equ   -30
  17. _LVOClose         equ   -36
  18. _LVORead          equ   -42
  19.  
  20. Existing: EQU 1005
  21.    movem.l a0/d0,-(SP)
  22.    move.l _AbsExecBase,a6
  23.    move.l #DOS_Name,a1
  24.    clr.l  d0
  25.    jsr    _LVOOpenLibrary(a6)
  26.    move.l d0,a6
  27.    tst.l  d0
  28.    beq    Abort
  29.    jsr    _LVOInput(a6)
  30.    move.l d0,StdIn
  31.    beq    Abort
  32.  
  33.    movem.l (SP)+,a0/d0
  34.    move.l  a0,d1
  35.    move.b #0,-1(a0,d0)
  36.    move.l #Existing,d2
  37.    jsr    _LVOOpen(a6)
  38.    move.l d0,FileHandle
  39.    bne    Display_File
  40.    bra    Abort
  41. Display_File:
  42.    move.l FileHandle,d1
  43.    move.l #Buffer,d2
  44.    move.l #8,d3
  45.    jsr    _LVORead(a6)
  46.    move.l d2,a0
  47.    move.l (a0),d4
  48.    cmp.l  #'FORM',d4
  49.    bne    Abort
  50.    move.l 4(a0),d3
  51.    move.l d3,chunksize
  52.    cmp.l  #131300,d3
  53.    bhi    Abort
  54.    move.l #$7fc00,d2
  55.    sub.l  d3,d2
  56.    move.l d2,so_buf
  57.    move.l FileHandle,d1
  58.    jsr    _LVORead(a6)
  59.    move.l FileHandle,d1
  60.    jsr    _LVOClose(a6)
  61.  
  62.    move.l so_buf,a1
  63. vh:cmp.l  #'VHDR',(A1)+
  64.    bne.s  vh
  65.    move.w 16(a1),d4
  66. bo:cmp.l  #'BODY',(A1)+
  67.    bne.s  bo
  68.    move.l (A1)+,d1
  69.    cmp.l  #131070,d1
  70.    bhi    Abort
  71.    divu   #2,d1
  72.    move.l A1,d2
  73.    move.l #3579546,d3
  74.    divu   d4,d3
  75.    MOVE.W        d1,AUD0LEN
  76.    MOVE.W        d1,AUD1LEN
  77.    MOVE.W        d3,AUD0PER
  78.    MOVE.W        d3,AUD1PER
  79.    MOVE.W       #64,AUD0VOL
  80.    MOVE.W       #64,AUD1VOL
  81.    MOVE.L        d2,AUD0LCH
  82.    MOVE.L        d2,AUD1LCH
  83.    MOVE.W #%1000001000000011,DMACONW
  84. Abort:
  85.    clr.l  d0
  86.    rts
  87.  
  88.    SECTION data,DATA
  89. DOS_Name:
  90.    dc.b 'dos.library',0
  91.  
  92.    SECTION mem,BSS
  93. StdIn      ds.l  1
  94. FileHandle:ds.l  1
  95. Buffer:    ds.l  2
  96. chunksize: ds.l  1
  97. so_buf:    ds.l  1
  98.    END
  99.  
  100.